home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / filutil / direxe.zip / DIREXE.C next >
C/C++ Source or Header  |  1994-01-11  |  2KB  |  59 lines

  1. #include <dirent.h> /* pour les fonctions opendir,readdir ... */
  2. #include <string.h> /* pour la fonction strstr */
  3. #include <stdio.h> /* pour printf */
  4. #include <stdlib.h> /* pour exit */
  5.  
  6. #define EXE 0
  7. #define COM 1
  8. #define BAT 2
  9. #define MAXEXE 100 /* nbr max d'entree dans la table des pointeurs */
  10.  
  11. void main () {
  12.  
  13.     DIR *dirdes ;
  14.     struct dirent *filedes ;
  15.     const char *line = "────────────────────────────────────────────────────────────────────────────────" ;
  16.     int i , j , nbr [3] = {0,0,0} ;
  17.     char *p [3][MAXEXE] ; /* tableau a 2 dim de pointeur vers des string */
  18.  
  19. /* ouvre le flux du dir courant */
  20.  
  21.     if ((dirdes = opendir (".")) == NULL) {
  22.         printf ("Warning, can't open the directory !!!") ;
  23.     exit (1) ;
  24.     }
  25.  
  26. /* ATTENTION, DOS RENVOIE LES NOMS DE DIR. EN MAJUSCULES */
  27.  
  28.     while ((filedes = readdir (dirdes)) != NULL ) {
  29.         if (strstr (filedes->d_name,".EXE") != NULL) {
  30.             p [EXE][nbr [EXE]] = (char *) malloc (sizeof (char)*13) ;
  31.             strcpy (p [EXE][nbr [EXE]],filedes->d_name) ;
  32.             nbr [EXE]++ ;
  33.         } else if (strstr (filedes->d_name,".COM") != NULL) {
  34.             p [COM][nbr [COM]] = (char *) malloc (sizeof (char)*13) ;
  35.             strcpy (p [COM][nbr [COM]],filedes->d_name) ;
  36.             nbr [COM]++ ;
  37.         } else if (strstr (filedes->d_name,".BAT") != NULL) {
  38.             p [BAT][nbr [BAT]] = (char *) malloc (sizeof (char)*13) ;
  39.             strcpy (p [BAT][nbr [BAT]],filedes->d_name) ;
  40.             nbr [BAT]++ ;
  41.         }
  42.     }
  43.     closedir (dirdes) ;
  44.  
  45. /* affiche le resultat */
  46.  
  47.     printf ("\nDirexe Coded By Sam In 1994 (C Version) - The Flamoots Production\n\n%s",line) ;
  48.     if (nbr[EXE] + nbr[COM] + nbr[BAT]) {
  49.         for (i=0 ; i <= 2 ; i++)
  50.             if (nbr [i]) {
  51.                 for (j=0 ; j < nbr [i] ; j++) printf ("%16s",p [i][j]) ;
  52.                 if (nbr [i] % 5) printf ("\n") ; /* 5 exec par ligne */
  53.                 printf ("%s",line) ;
  54.             }
  55.         printf ("\nTotal executable(s) file(s) founded : %d\n",nbr[EXE]+nbr[COM]+nbr[BAT]) ;
  56.     } else
  57.         printf ("\nNo executables files where found !!!\n") ;
  58.     exit (0) ;
  59. }